﻿//------------------------------------------------------------------------------
// <copyright file="BuiltInHookNames.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//------------------------------------------------------------------------------

namespace Microsoft.Internal.GamesTest.Rpc.Client
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    /// <summary>
    /// A simple container class to hold the names of built-in hooks.
    /// </summary>
    internal static class BuiltInHookNames
    {
        /// <summary>
        /// The name of the built-in hook method to update event subscriptions on the server.
        /// </summary>
        public const string UpdateEventSubscription = "_2EB24267-D833-4D0E-879F-3637D0C909A1_UpdateEventSubscription";

        /// <summary>
        /// The name of the built-in hook method called to do the handshake on connect and will subscribe to a list of events.
        /// </summary>
        public const string VerifyPropertiesOnConnect = "_52DA7DDB-51D8-4DB7-B447-02F8CCB4DF81_VerifyPropertiesAndSubscribeOnConnect";

        /// <summary>
        /// The name of the built-in hook method called to enumerate hooks registered on the server.
        /// </summary>
        public const string EnumRegisteredHooks = "_7DE6D53C-7AE7-49C2-9FC5-95F93CF2028E_EnumRegisteredHooks";
        
        /// <summary>
        /// The name of the built-in hook method called to set maximum queue size for processing requests on the server.
        /// </summary>
        public const string SetMaximumQueueSize = "_3FA5BC26-5FE9-40D5-9080-330582E93449_SetMaximumQueueSize";

        /// <summary>
        /// The names of all built-in hooks in one constant, useful for tests
        /// so we have only a couple of places to update when adding a new hook.
        /// </summary>
        public static readonly string[] AllNames = new string[]
        {
            UpdateEventSubscription,
            VerifyPropertiesOnConnect,
            EnumRegisteredHooks,
            SetMaximumQueueSize
        };
    }
}
